home *** CD-ROM | disk | FTP | other *** search
- #ifndef _PROCINFO_
- #define _PROCINFO_
-
- #include <Events.h>
- #include <MixedMode.h>
- #include <MacTypes.h>
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- #define RESULT_OFFSET(type) ((sizeof(type) == 1) ? 3 : ((sizeof(type) == 2) ? 1 : 0))
-
- typedef pascal void (*CleanUpApplicationPatchPtr)(void);
- typedef pascal void (*CloseCPortPatchPtr)(CGrafPtr port);
- typedef pascal void (*ClosePortPatchPtr)(GrafPtr port);
- typedef pascal void (*CopyBitsProcPtr)(BitMap *srcBits,BitMap *dstBits,Rect *srcRect,Rect *dstRect,short mode,RgnHandle maskRgn);
- typedef pascal void (*CopyBitsPatchPtr)(BitMap *srcBits,BitMap *dstBits,Rect *srcRect,Rect *dstRect,short mode,RgnHandle maskRgn,CopyBitsProcPtr copyBitsProc);
- typedef pascal void (*CopyBitsPrePatchPtr)(BitMap **srcBits,BitMap **dstBits,Rect **srcRect,Rect **dstRect,short *mode,RgnHandle *maskRgn);
- typedef pascal void (*CopyBitsPostPatchPtr)(BitMap **srcBits,BitMap **dstBits,Rect **srcRect,Rect **dstRect,short *mode,RgnHandle *maskRgn);
- typedef pascal void (*OpenCPortPatchPtr)(CGrafPtr port);
- typedef pascal void (*OpenPortPatchPtr)(GrafPtr port);
- typedef pascal void (*SynchIdleTimePatchPtr)(void);
-
- #if GENERATINGCFM
- typedef UniversalProcPtr CleanUpApplicationPatchUPP;
- typedef UniversalProcPtr CloseCPortPatchUPP;
- typedef UniversalProcPtr ClosePortPatchUPP;
- typedef UniversalProcPtr CopyBitsPatchUPP;
- typedef UniversalProcPtr CopyBitsPrePatchUPP;
- typedef UniversalProcPtr CopyBitsPostPatchUPP;
- typedef UniversalProcPtr OpenCPortPatchUPP;
- typedef UniversalProcPtr OpenPortPatchUPP;
- typedef UniversalProcPtr SynchIdleTimePatchUPP;
- #else
- typedef CleanUpApplicationPatchPtr CleanUpApplicationPatchUPP;
- typedef CloseCPortPatchPtr CloseCPortPatchUPP;
- typedef ClosePortPatchPtr ClosePortPatchUPP;
- typedef CopyBitsPatchPtr CopyBitsPatchUPP;
- typedef CopyBitsPrePatchPtr CopyBitsPrePatchUPP;
- typedef CopyBitsPostPatchPtr CopyBitsPostPatchUPP;
- typedef OpenCPortPatchPtr OpenCPortPatchUPP;
- typedef OpenPortPatchPtr OpenPortPatchUPP;
- typedef SynchIdleTimePatchPtr SynchIdleTimePatchUPP;
- #endif
-
- enum {
- uppCleanUpApplicationPatchProcInfo = kPascalStackBased,
- uppCloseCPortPatchProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(CGrafPtr))),
- uppClosePortPatchProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GrafPtr))),
- uppCopyBitsProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(BitMap*)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(BitMap*)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Rect*)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Rect*)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(short)))
- | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(RgnHandle))),
- uppCopyBitsPatchProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(BitMap*)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(BitMap*)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Rect*)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Rect*)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(short)))
- | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(RgnHandle)))
- | STACK_ROUTINE_PARAMETER(7,SIZE_CODE(sizeof(CopyBitsProcPtr))),
- uppCopyBitsPrePatchProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(BitMap**)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(BitMap**)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Rect**)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Rect**)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(short*)))
- | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(RgnHandle*))),
- uppCopyBitsPostPatchProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(BitMap**)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(BitMap**)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Rect**)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Rect**)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(short*)))
- | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(RgnHandle*))),
- uppOpenCPortPatchProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(CGrafPtr))),
- uppOpenPortPatchProcInfo = kPascalStackBased
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GrafPtr))),
- uppSynchIdleTimePatchProcInfo = kPascalStackBased
- };
-
- #if GENERATINGCFM
- #define NewCleanUpApplicationPatch(userRoutine) (CleanUpApplicationPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCleanUpApplicationPatchProcInfo,GetCurrentArchitecture())
- #define NewCloseCPortPatch(userRoutine) (CloseCPortPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCloseCPortPatchProcInfo,GetCurrentArchitecture())
- #define NewClosePortPatch(userRoutine) (ClosePortPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppClosePortPatchProcInfo,GetCurrentArchitecture())
- #define NewCopyBitsProc(userRoutine) (CopyBitsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCopyBitsProcInfo,GetCurrentArchitecture())
- #define NewCopyBitsPatch(userRoutine) (CopyBitsPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCopyBitsPatchProcInfo,GetCurrentArchitecture())
- #define NewCopyBitsPrePatch(userRoutine) (CopyBitsPrePatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCopyBitsPrePatchProcInfo,GetCurrentArchitecture())
- #define NewCopyBitsPostPatch(userRoutine) (CopyBitsPostPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppCopyBitsPostPatchProcInfo,GetCurrentArchitecture())
- #define NewOpenCPortPatch(userRoutine) (OpenCPortPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppOpenCPortPatchProcInfo,GetCurrentArchitecture())
- #define NewOpenPortPatch(userRoutine) (OpenPortPatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppOpenPortPatchProcInfo,GetCurrentArchitecture())
- #define NewSynchIdleTimePatch(userRoutine) (SynchIdleTimePatchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),uppSynchIdleTimePatchProcInfo,GetCurrentArchitecture())
- #else
- #define NewCleanUpApplicationPatch(userRoutine) ((CleanUpApplicationPatchUPP)(userRoutine))
- #define NewCloseCPortPatch(userRoutine) ((CloseCPortPatchUPP)(userRoutine))
- #define NewClosePortPatch(userRoutine) ((ClosePortPatchUPP)(userRoutine))
- #define NewCopyBitsProc(userRoutine) ((CopyBitsUPP)(userRoutine))
- #define NewCopyBitsPatch(userRoutine) ((CopyBitsPatchUPP)(userRoutine))
- #define NewCopyBitsPrePatch(userRoutine) ((CopyBitsPrePatchUPP)(userRoutine))
- #define NewCopyBitsPostPatch(userRoutine) ((CopyBitsPostPatchUPP)(userRoutine))
- #define NewOpenCPortPatch(userRoutine) ((OpenCPortPatchUPP)(userRoutine))
- #define NewOpenPortPatch(userRoutine) ((OpenPortPatchUPP)(userRoutine))
- #define NewSynchIdleTimePatch(userRoutine) ((SynchIdleTimePatchUPP)(userRoutine))
- #endif
-
- #if GENERATINGCFM
- #define CallCleanUpApplicationPatch(userRoutine) CallUniversalProc((UniversalProcPtr)(userRoutine),uppCleanUpApplicationPatchProcInfo)
- #define CallCloseCPortPatch(userRoutine,port) CallUniversalProc((UniversalProcPtr)(userRoutine),uppCloseCPortPatchProcInfo,(port))
- #define CallClosePortPatch(userRoutine,port) CallUniversalProc((UniversalProcPtr)(userRoutine),uppClosePortPatchProcInfo,(port))
- #define CallCopyBitsProc(userRoutine,sb,db,sr,dr,m,r) CallUniversalProc((UniversalProcPtr)(userRoutine),uppCopyBitsProcInfo,(sb),(db),(sr),(dr),(m),(r))
- #define CallCopyBitsPatch(userRoutine,sb,db,sr,dr,m,r,p) CallUniversalProc((UniversalProcPtr)(userRoutine),uppCopyBitsPatchProcInfo,(sb),(db),(sr),(dr),(m),(r),(p))
- #define CallCopyBitsPrePatch(userRoutine,sb,db,sr,dr,m,r) CallUniversalProc((UniversalProcPtr)(userRoutine),uppCopyBitsPrePatchProcInfo,(sb),(db),(sr),(dr),(m),(r))
- #define CallCopyBitsPostPatch(userRoutine,sb,db,sr,dr,m,r) CallUniversalProc((UniversalProcPtr)(userRoutine),uppCopyBitsPostPatchProcInfo,(sb),(db),(sr),(dr),(m),(r))
- #define CallOpenCPortPatch(userRoutine,port) CallUniversalProc((UniversalProcPtr)(userRoutine),uppOpenCPortPatchProcInfo,(port))
- #define CallOpenPortPatch(userRoutine,port) CallUniversalProc((UniversalProcPtr)(userRoutine),uppOpenPortPatchProcInfo,(port))
- #define CallSynchIdleTimePatch(userRoutine) CallUniversalProc((UniversalProcPtr)(userRoutine),uppSynchIdleTimePatchProcInfo)
- #else
- #define CallCleanUpApplicationPatch(userRoutine) (*(CleanUpApplicationPatchPtr)(userRoutine))()
- #define CallCloseCPortPatch(userRoutine,port) (*(CloseCPortPatchPtr)(userRoutine))((port))
- #define CallClosePortPatch(userRoutine,port) (*(ClosePortPatchPtr)(userRoutine))((port))
- #define CallCopyBitsProc(userRoutine,sb,db,sr,dr,m,r) (*(CopyBitsProcPtr)(userRoutine))((sb),(db),(sr),(dr),(m),(r))
- #define CallCopyBitsPatch(userRoutine,sb,db,sr,dr,m,r,p) (*(CopyBitsPatchPtr)(userRoutine))((sb),(db),(sr),(dr),(m),(r),(p))
- #define CallCopyBitsPrePatch(userRoutine,sb,db,sr,dr,m,r) (*(CopyBitsPrePatchPtr)(userRoutine))((sb),(db),(sr),(dr),(m),(r))
- #define CallCopyBitsPostPatch(userRoutine,sb,db,sr,dr,m,r) (*(CopyBitsPostPatchPtr)(userRoutine))((sb),(db),(sr),(dr),(m),(r))
- #define CallOpenCPortPatch(userRoutine,port) (*(OpenCPortPatchPtr)(userRoutine))((port))
- #define CallOpenPortPatch(userRoutine,port) (*(OpenPortPatchPtr)(userRoutine))((port))
- #define CallSynchIdleTimePatch(userRoutine) (*(SynchIdleTimePatchPtr)(userRoutine))()
- #endif
-
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* _PROCINFO_ */
-